01. Looking Forward

Capstone Component

While Android’s base Views and components provide the needed functionality for most application features, there are times when you need to build custom functionality or aesthetics to accomplish a specific goal, or even just to optimize performance with your specific application. Think about the various features and layouts in your application. Could you extend a View to simplify the business logic, add animation, or provide extended functionality? Map out what custom Views might find helpful in building out your application, how they would extend the base View, and what functionality and logic you could offload into the View code.

Is your application going to provide the user with the ability to draw and interact with visualizations on the screen or provide custom visualizations in real time? Canvas drawing allows real-time updates to the UI based on data or interaction events. What type of math, pathing, and logic might you need to provide visualizations within your application? Will you need to save this data, and if so, how? Would you save out the finished product, the steps to recreate and display the progress, or anything in between?

In This Lesson

Custom Views extend the functionality of the provided base Android Views to provide additional functionality and simplify code by abstracting View-only business logic that can be self-contained within the View itself. Think about the apps you use frequently. Think about things like reactions in social media applications, buttons with various states:

  • Are there custom behaviors present on these Views throughout the application?
  • What about styling and appearance changes?
  • Do the Views contain special logic or functionality such as content validation and alteration etc.?

In the Next Lesson

Canvas drawing allows for the update of the display as a result of processing data or user interactions. While not used in every application, it isn’t uncommon for applications to need to touch the Canvas for certain functionality. Consider maps applications that drag images across a surface, data visualizations charts for weather, drawing and note taking applications and so forth:

  • What apps do you use that may use the Canvas to draw directly to the display?
  • What transformations might they be using?

Think about social media applications and other apps with photo manipulation:

  • Have you ever edited a profile picture? Crop & zoom?
  • What about photo filters, stickers, and text overlays?
  • How about photo guidelines?

Remember, not all Canvas drawing is obvious at first glance.